Many computer systems include one or more host computers and one or more resources accessible by the host computers. One type of computer system resource is a storage system that stores data used by one or more of the host computers. FIG. 1 illustrates an exemplary computer system including a host computer 1 and a storage system 3.
The storage system 3 includes a plurality of disk drives 5a-b, and a plurality of disk controllers 7a-7b that respectively control access to the disk drives 5a and 5b. The storage system 3 further includes a plurality of storage bus directors 9 that control communication with the host computer 1 over communication buses 17. The storage system 3 further includes a cache 11 to provide improved storage system performance. In particular, when the host computer 1 executes a read from the storage system 3, the storage system 3 may service the read from the cache 11 (when the data is stored in the cache), rather than from one of the disk drives 5a-5b, to execute the read more efficiently. Similarly, when the host computer 1 executes a write to the storage system 3, the corresponding storage bus director 9 can execute the write to the cache 11. Thereafter, the write can be destaged asynchronously, in a manner transparent to the host computer 1, to the appropriate one of the disk drives 5a-5b. Finally, the storage system 3 includes an internal bus 13 over which the storage bus directors 9, disk controllers 7a-7b and the cache 11 communicate.
The host computer 1 includes a processor 16 and one or more host bus adapters 15 that each controls communication between the processor 16 and the storage system 3 via a corresponding one of the communication buses 17. It should be appreciated that rather than a single processor 16, the host computer 1 can include multiple processors. Each bus 17 can be any of a number of different types of communication links, with the host bus adapter 15 and the storage bus directors 9 being adapted to communicate using an appropriate protocol for the communication bus 17 coupled therebetween. For example, each of the communication buses 17 can be implemented as a SCSI bus, with the directors 9 and adapters 15 each being a SCSI driver. Alternatively, communication between the host computer 1 and the storage system 3 can be performed over a Fibre Channel fabric or using iSCSI.
As shown in the exemplary system of FIG. 1, some computer systems employ multiple paths for communicating between the host computer 1 and the storage system 3. In some such systems, a host bus adapter 15 has the ability to access each of the disk drives 5a-b, through the appropriate storage bus director 9 and disk controller 7a-b. It should be appreciated that providing such multi-path capabilities enhances system performance, in that multiple communication operations between the host computer 1 and the storage system 3 can be performed simultaneously. A multi-path computer may also be attractive due to the increased likelihood that a resource will be available at any time via an available path.
In a computer system featuring multiple paths between the host computer 1 and a system resource such as the storage system 3, some facility is typically required to enable the host computer 1 to recognize that multiple paths have been formed to the same storage devices within the storage system. The operating system on the host computer 1 typically will view the storage system 3 as having four times its actual number of disk drives 5a-b, since four separate paths are provided to each of disk drives 5a-b. Thus, such a computer system typically further requires a facility for managing the available paths. U.S. Pat. No. 6,629,189 discloses various methods and apparatus for managing devices in a computer system that are accessible via multiple paths.
Data storage devices such as disk drives 5a-5b may be presented to one or more hosts, such as host computer 1, as a logical volume. A logical volume can represent a particular physical storage device, such as one of disk drives 5a-5b. A logical volume may also be referred to as a logical unit. An identifier of a logical volume, also called a logical volume identifier, includes information specific to the logical volume it identifies. One example of a logical volume identifier is the Fibre Channel World Wide Names (WWN) of the logical volume. Another example of a logical volume identifier is information that was assigned by the volume manufacturer and that is provided in response to a SCSI inquiry.
At times, there may be reasons to move data from one area of storage system 3 to another or from one storage system to another. For example, the user may want to upgrade the technology in a storage system or upgrade the storage system as whole. The user may want to replace an old device that may be near the end of its expected life. For another example, the user may implement an information life cycle management tool.
Data migrations typically require applications to be taken offline. Thus, data migrations must occur in periods during which data need not be accessible. Application-users, however, may want data to be accessible most of the time. Accordingly, the time window during which data may be migrated is often quite limited. Thus, planning and managing large-scale data migration can be a significant challenge.